package com.atao.baokede.service;

import com.atao.baokede.pojo.Cart;

import java.math.BigDecimal;
import java.util.List;

public interface CartService {
    // 根据用户ID查询购物车中的所有商品
    List<Cart> findByUserId();

    // 添加购物车条目，spec字段应为JSON格式（如 {"color": "红色", "size": "大"}）
    void insert(Cart cart);

    // 更新购物车中某条记录的商品数量
    void updateNumByItemId(Long cartId, Long num);

    // 删除购物车中某条记录（根据用户ID和商品ID）
    void deleteByCartId(Long cartId);

    // 查询购物车总数量（用于显示购物车数量）
    Long getTotalItemCountByUserId();

    // 查询购物车中商品的总金额（用于结算页面）
    BigDecimal getTotalPrice(List<Long> cartIds);

    // 根据商品名称模糊查询购物车记录（可用于搜索功能）
    List<Cart> searchByName(String keyword);

    // 根据id集合批量查询购物车数据
    List<Cart> findByIds(List<Long> ids);

    // 根据id集合批量删除购物车数据
    void deleteByCartIds(List<Long> ids);

    // 禁用购物车中的某条记录（根据商品ID）
    void disableCartItem(Long itemId);

    // 禁用购物车中的多条记录（根据商品ID集合）
    void disableCartItems(List<Long> itemIds);

    // 启用购物车中的某条记录（根据商品ID）
    void enableCartItems(List<Long> itemIds);

    // 根据商品ID查询购物车数据
    Cart findByItemId(Long itemId);
}
